/**
 * @file   Duck.h
 * @author Wang Heyu <hywang@ubuntu>
 * @date   Fri Jul  7 07:45:48 2023
 * 
 * @brief  This is a very stupid class.
 * 
 * 
 */

#include <iostream>

/**
 * Color for ducks!
 * 
 */
enum Color {
    RED,			/**< red color. */
    GREEN,			/**< greem color. */
    BLUE			/**< bule color. */
};

/**
 * Duck is a kind of powerful animal.
 * 
 */
class Duck
{
private:
    double weight;		/**< The weight of a duck. */
    Color color;		/**< The color of a duck. */
    int ID;			/**< Every duck has a ID no. */
public:
    /** 
     * Construct a duck.
     * 
     * @param _w to set the weight.
     * @param _c to set the color.
     * @param _I to set the ID.
     */
    Duck(double _w, Color _c, int _I) : weight(_w), color(_c), ID(_I) {};

    /** 
     * Long live the duck!
     * 
     */
    ~Duck() {
	std::cout << "Duck will never DIE!" << std::endl;
    };

    /** 
     * Even a duck will laugh...
     * 
     */
    void laugh () {
	std::cout << "Guaguagua!" << std::endl;
    };
};
